package service;

import dao.*;
import model.*;
import utils.*;

import java.sql.*;
import java.util.List;

public class OrderService {
    private OrderDao oDao = new OrderDao();
    public void insertOrder(Order order) {
//        Connection con = null;
        try {
//            con = DataSourceUtils.getConnection();
//            con.setAutoCommit(false);

            oDao.insertOrder(order);

//            int id = oDao.getLastInsertId(con);
//            order.setId(id);
//            OrderItem item = new OrderItem();
//            GoodsService gService = new GoodsService();
//            Goods g = gService.getGoodsById(order.getProduct_id());
//            item.setOrder(order);
//            item.setPrice(g.getPrice());
//            item.setAmount(order.getAmount());
//            item.setGoods(g);
//            oDao.insertOrderItem(con,item);

//            con.commit();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
//            if(con!=null)
//                try {
//                    con.rollback();
//                } catch (SQLException e1) {
//                    // TODO Auto-generated catch block
//                    e1.printStackTrace();
//                }
        }
    }
//    public List<Order> selectAll(int userid){
//        List<Order> list=null;
//        GoodsService gService = new GoodsService();
//        try {
//            list = oDao.selectAll(userid);
//            for(Order o :list) {
//                List<OrderItem> l = oDao.selectAllItem(o.getId());
//                Goods goods = gService.getGoodsById(o.getProduct_id());
//                o.setGoods(goods);
//                o.setItemList(l);
//            }
//        } catch (SQLException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        }
//        return list;
//    }
    public List<Order> GetAllOrder()
    {
        List<Order> list=null;
        try {
            list=oDao.GetAllOrder();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }
    public List<Order> selectAllByReceiverId(int userId){
        List<Order> list=null;
        ProductService pService = new ProductService();
        try {
            list = oDao.selectAllByReceiverId(userId);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return list;
    }
    public List<Order> selectCompeletedByReceiverId(int userId){
        List<Order> list=null;
        ProductService pService = new ProductService();
        try {
            list = oDao.selectCompeletedByReceiverId(userId);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return list;
    }
    public List<Order> selectUnFinishedByReceiverId(int userId){
        List<Order> list=null;
        ProductService pService = new ProductService();
        try {
            list = oDao.selectUnFinishedByReceiverId(userId);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return list;
    }
    //    public Page getOrderPage(int status,int pageNumber) {
//        Page p = new Page();
//        p.setPageNumber(pageNumber);
//        int pageSize = 10;
//        int totalCount = 0;
//        try {
//            totalCount = oDao.getOrderCount(status);
//        } catch (SQLException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        }
//        p.SetPageSizeAndTotalCount(pageSize, totalCount);
//        List list=null;
//        try {
//            list = oDao.selectOrderList(status, pageNumber, pageSize);
//            for(Order o :(List<Order>)list) {
//                List<OrderItem> l = oDao.selectAllItem(o.getId());
//                o.setItemList(l);
//            }
//        } catch (SQLException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        }
//        p.setList(list);
//        return p;
//    }
    public int getProductIdById(int id){
        int productId=0;
        try{
            productId = oDao.getProductIdById(id);

        }catch(SQLException e){
            e.printStackTrace();
        }
        return productId;
    }
    public void delete(int id) {
        try {
            oDao.deleteOrder(id);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }
}
